package com.project;
import java.util.Scanner;

public class Project {
	public static void main(String[] args){
//初始化数组
		int array[][]=null;
		array=new int[5][10];
//外层循环为五个选手
		for(int num=0;num<5;num++){
			System.out.println("请输入第"+(num+1)+"个选手的成绩（共十个评委，满分10分）");
//内层循环为10个评委的评分
			for(int i=0;i<10;i++){
				Scanner t=new Scanner(System.in);
				int temp=t.nextInt();
				array[num][i]=temp;
//判断输入的评分是否合法		
				if(temp<0||temp>10){
					System.out.println("输入有误！请重新输入：");
					i--;
				}	
			}
			int max=max(array,num);
			System.out.println("最高分为"+max);
			int min=min(array,num);
			System.out.println("最低分为"+min);
			double avg=average(array,max,min,num);
			System.out.println("平均分为"+avg);
//从高到低输出得分		
			System.out.println("第"+(num+1)+"位选手得分为");
			//排序
			for(int i=0;i<8;i++){
				System.out.println(+sortArray(array,max,min,num)[i]);
			}

		}
	}
	
//求最高分
	public static int max(int array[][],int num){
		int max=array[num][0];
		for(int i=0;i<10;i++){
			if(array[num][i]>max)
				max=array[num][i];
		}
		return max;
	}
	
//求最低分
	public static int min(int array[][],int num){
		int min=array[num][0];
		for(int i=0;i<10;i++){
			if(array[num][i]<min)
				min=array[num][i];
		}
		return min;
	}
	
//求平均分
	public static double average(int array[][],int max,int min,int num){
		double avg=0;	int sum=0;
		for(int i=0;i<10;i++){
			sum+=array[num][i];
		}
		sum=sum-max-min;
		avg=(double)sum/(double)8;
		return avg;
	}
	
//排序，从高到低输出分数
	public static int[] sortArray(int array[][],int max,int min,int num){
		//初始化新数组
		int sortArray[]=null;
		sortArray=new int[8];
		int a=0;	int i=0,j=0;
		//跳过最高分和最低分
		int flagmax=0,flagmin=0;
		for(i=0,j=0;i<8&&j<10;){
			if(array[num][j]!=min&&array[num][j]!=max){
				sortArray[i]=array[num][j];
				i++;j++;
				}
			//是最低分
			else if(array[num][j]==min){
				flagmin=flagmin+1;
				//是第一个最低分
				if(flagmin==1){
					j++;
				}
				//除第一个以外的最低分都不用再除去
				if(flagmin!=1){
					sortArray[i]=array[num][j];	
					i++;j++;
				}
			}
			//同理除去最高分
			else if(array[num][j]==max){
				flagmax++;
				if(flagmax==1){
					j++;
				}
				if(flagmax!=1){
					sortArray[i]=array[num][j];	
					i++;j++;
				}
			}
		}
		//将除掉最高分和最低分的分数排序（我用的冒泡排序）
		for(j=0;j<7;j++){
			for(i=0;i<7;i++){
				if(sortArray[i]<sortArray[i+1]){
					a=sortArray[i];
					sortArray[i]=sortArray[i+1];
					sortArray[i+1]=a;
				}
			}
		}
		return sortArray;
	}
		
}

